/*********************************************************************
 * Lee una imagen de textura en formato tga
 * Parametros --> char *fichero : Cadena de caracteres con el nombre
 * del fichero
 * int num: Numero que identifica la textura
 * Salida --> Ninguna
 *********************************************************************/ 
void leeTextura ( char *fichero, int num) { 
	int i, j; 
	char r, g, b, c; 
	FILE *tga;

	/* Apertura del fichero TGA */ 
	if ((tga = fopen(fichero, "rb" )) == NULL) 
	printf ( "Error abriendo el fichero: %s\n" , fichero); 
	else { 
		/* Lee los 18 primeros caracteres de la cabecera */ 
		for (j=1; j<=18; j++) 
		fscanf (tga, "%c" , &c);

		/* Lee la imagen */ 
		for (j=altoTextura-1; j>=0; j--) { 
			for (i=anchoTextura-1; i>=0; i--) { 
				fscanf(tga, "%c%c%c" , &b, &g, &r); 
				texturas[num][j][i][0] = (GLubyte)r; 
				texturas[num][j][i][1] = (GLubyte)g; 
				texturas[num][j][i][2] = (GLubyte)b; 
			} 
		} 
		fclose(tga); /* Cierre del fichero TGA */ 
	} 
}

void cargaTextura( char *fichero, int num) { 
	leeTextura(fichero, num); 
	glBindTexture(GL_TEXTURE_2D, nombreTexturas[num]); 
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1); 
	glTexImage2D(GL_TEXTURE_2D, 0, 3, anchoTextura, altoTextura, 0, GL_RGB, GL_UNSIGNED_BYTE, texturas[num]); 
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); 
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); 
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 
	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); 
}
